package com.ruoyi.domain;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 车辆收费记录对象 parking_record_charge
 * 
 * @author dongdong
 * @date 2025-08-28
 */
public class ParkingRecordCharge extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 下级平台ID */
    @Excel(name = "下级平台ID")
    private String platformId;

    /** 下级平台交易订单 ID */
    private String uniqueId;

    /** 停车场停车记录 ID */
    private String recordId;

    /** 场区名称 */
    @Excel(name = "场区名称")
    private String parkingLotName;

    /** 场区编码 */
    @Excel(name = "场区编码")
    private String parkingLotCode;

    /** 交易流水号 */
    @Excel(name = "交易流水号")
    private String serialNumber;

    /** 进场时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "进场时间", width = 30, dateFormat = "yyyy-MM-dd")
    private LocalDateTime carInTime;

    /** 出场时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "出场时间", width = 30, dateFormat = "yyyy-MM-dd")
    private LocalDateTime carOutTime;

    /** 停车时长（分） */
    @Excel(name = "停车时长（分）")
    private Integer parkTime;

    /** 车牌号码 */
    @Excel(name = "车牌号码")
    private String carNum;

    /** 消费金额（元） */
    @Excel(name = "消费金额（元）")
    private BigDecimal consumeMoney;

    /** 实收款金额（元） */
    @Excel(name = "实收款金额（元）")
    private BigDecimal feeAmount;

    /** 优惠金额（元） */
    @Excel(name = "优惠金额（元）")
    private BigDecimal couponAmount;

    /** 支付类型 */
    private Integer feeType;

    /** 支付时间 */
    private String chargeTime;

    /** 车主名称 */
    private String ownerName;

    /** 车主电话 */
    private String ownerPhone;

    /** 收费员名称 */
    private String operatorName;

    /** 优惠类型 */
    private Integer favorableType;

    /** 优惠券码 */
    private String discountCode;

    /** 优惠券批次号 */
    private String batchNumber;

    /** 开发票额 */
    private BigDecimal invoiceAmount;

    /** 税额 */
    private BigDecimal taxNumber;

    /** 税率 */
    private String taxRate;

    /**
     * 部门ID
     */
    @Excel(name = "部门ID")
    private Long deptId;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setPlatformId(String platformId) 
    {
        this.platformId = platformId;
    }

    public String getPlatformId() 
    {
        return platformId;
    }
    public void setUniqueId(String uniqueId) 
    {
        this.uniqueId = uniqueId;
    }

    public String getUniqueId() 
    {
        return uniqueId;
    }
    public void setRecordId(String recordId) 
    {
        this.recordId = recordId;
    }

    public String getRecordId() 
    {
        return recordId;
    }
    public void setParkingLotName(String parkingLotName) 
    {
        this.parkingLotName = parkingLotName;
    }

    public String getParkingLotName() 
    {
        return parkingLotName;
    }
    public void setParkingLotCode(String parkingLotCode) 
    {
        this.parkingLotCode = parkingLotCode;
    }

    public String getParkingLotCode() 
    {
        return parkingLotCode;
    }
    public void setSerialNumber(String serialNumber) 
    {
        this.serialNumber = serialNumber;
    }

    public String getSerialNumber() 
    {
        return serialNumber;
    }
    public void setCarInTime(LocalDateTime carInTime)
    {
        this.carInTime = carInTime;
    }

    public LocalDateTime getCarInTime()
    {
        return carInTime;
    }
    public void setCarOutTime(LocalDateTime carOutTime)
    {
        this.carOutTime = carOutTime;
    }

    public LocalDateTime getCarOutTime()
    {
        return carOutTime;
    }

    public void setParkTime(Integer parkTime) 
    {
        this.parkTime = parkTime;
    }

    public Integer getParkTime() 
    {
        return parkTime;
    }
    public void setCarNum(String carNum) 
    {
        this.carNum = carNum;
    }

    public String getCarNum() 
    {
        return carNum;
    }
    public void setConsumeMoney(BigDecimal consumeMoney) 
    {
        this.consumeMoney = consumeMoney;
    }

    public BigDecimal getConsumeMoney() 
    {
        return consumeMoney;
    }
    public void setFeeAmount(BigDecimal feeAmount) 
    {
        this.feeAmount = feeAmount;
    }

    public BigDecimal getFeeAmount() 
    {
        return feeAmount;
    }
    public void setCouponAmount(BigDecimal couponAmount) 
    {
        this.couponAmount = couponAmount;
    }

    public BigDecimal getCouponAmount() 
    {
        return couponAmount;
    }
    public void setFeeType(Integer feeType) 
    {
        this.feeType = feeType;
    }

    public Integer getFeeType() 
    {
        return feeType;
    }
    public void setChargeTime(String chargeTime) 
    {
        this.chargeTime = chargeTime;
    }

    public String getChargeTime() 
    {
        return chargeTime;
    }
    public void setOwnerName(String ownerName) 
    {
        this.ownerName = ownerName;
    }

    public String getOwnerName() 
    {
        return ownerName;
    }
    public void setOwnerPhone(String ownerPhone) 
    {
        this.ownerPhone = ownerPhone;
    }

    public String getOwnerPhone() 
    {
        return ownerPhone;
    }
    public void setOperatorName(String operatorName) 
    {
        this.operatorName = operatorName;
    }

    public String getOperatorName() 
    {
        return operatorName;
    }
    public void setFavorableType(Integer favorableType) 
    {
        this.favorableType = favorableType;
    }

    public Integer getFavorableType() 
    {
        return favorableType;
    }
    public void setDiscountCode(String discountCode) 
    {
        this.discountCode = discountCode;
    }

    public String getDiscountCode() 
    {
        return discountCode;
    }
    public void setBatchNumber(String batchNumber) 
    {
        this.batchNumber = batchNumber;
    }

    public String getBatchNumber() 
    {
        return batchNumber;
    }
    public void setInvoiceAmount(BigDecimal invoiceAmount) 
    {
        this.invoiceAmount = invoiceAmount;
    }

    public BigDecimal getInvoiceAmount() 
    {
        return invoiceAmount;
    }
    public void setTaxNumber(BigDecimal taxNumber) 
    {
        this.taxNumber = taxNumber;
    }

    public BigDecimal getTaxNumber() 
    {
        return taxNumber;
    }
    public void setTaxRate(String taxRate) 
    {
        this.taxRate = taxRate;
    }

    public String getTaxRate() 
    {
        return taxRate;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("platformId", getPlatformId())
            .append("uniqueId", getUniqueId())
            .append("recordId", getRecordId())
            .append("parkingLotName", getParkingLotName())
            .append("parkingLotCode", getParkingLotCode())
            .append("serialNumber", getSerialNumber())
            .append("carInTime", getCarInTime())
            .append("carOutTime", getCarOutTime())
            .append("parkTime", getParkTime())
            .append("carNum", getCarNum())
            .append("consumeMoney", getConsumeMoney())
            .append("feeAmount", getFeeAmount())
            .append("couponAmount", getCouponAmount())
            .append("feeType", getFeeType())
            .append("chargeTime", getChargeTime())
            .append("ownerName", getOwnerName())
            .append("ownerPhone", getOwnerPhone())
            .append("operatorName", getOperatorName())
            .append("favorableType", getFavorableType())
            .append("discountCode", getDiscountCode())
            .append("batchNumber", getBatchNumber())
            .append("invoiceAmount", getInvoiceAmount())
            .append("taxNumber", getTaxNumber())
            .append("taxRate", getTaxRate())
            .append("deptId", getDeptId())
            .toString();
    }
}
